home *** CD-ROM | disk | FTP | other *** search
- The Linux Thai HOWTO
- Poonlap Veeratanabutr, poon-v@fedu.uec.ac.jp <mailto:poon-
- v@fedu.uec.ac.jp>
- v0.3, 16 July 1997
-
- This document describes how to set Linux to use Thai language. This
- means at least, you can read and write Thai plain text document, name
- filename in Thai and use some applications with Thai characters. I
- use Linux Slackware96, the path name I describe here may be different
- to other distributions.
-
- 1. Introduction
-
- My motivation comes from ZzzThai Project
- <http://www.fedu.uec.ac.jp/ZzzThai> by uecthai@fedu.uec.ac.jp
- <mailto:uecthai@fedu.uec.ac.jp>, which describe how to use Thai with
- many computer platforms. I joined this project, started from windows95
- then I felt Linux is more interesting.
-
- This is the early version of Thai HOWTO. It is not complete yet. The
- things I did not describe here, printing Thai document, Thai Tex, etc.
- I will try to describe them in later version.
-
- Thai standard character codes is TIS620. Thai character codes are in
- the same range as iso_8859_1, so we can treat it as iso_8859_1 type.
- Now it seems to be iso_8859_11 standard. See
- http://www.nectec.or.th/it-standards/iso8859-11
- <http://www.nectec.or.th/it-standards/iso8859-11> about this new
- standard. With X11R6 there is information about Thai in
- /usr/X11/include/X11/keysymdef.h and
- /usr/X11/lib/X11/locale/th_TH.TACTIS. You may look in these directory
- or file for your information. For now, it is better to treat Thai
- character as iso_8859_1 and it works well.
-
- Thai characters are not like Latin characters. There are many position
- in Thai character, normal position, character on other characters,
- character under other characters. There is not space in sentences.
- These are some problems in developing Thai word-processor.
-
- You can find the lastest version of this HOWTO document on
- http://www.fedu.uec.ac.jp/ZzzThai/Linux
- <http://www.fedu.uec.ac.jp/ZzzThai/Linux>
-
- 2. Thai Input and Output
-
- 2.1. Linux console
-
- 2.1.1. Thai fonts
-
- You can obtain Linux Thai console fonts which created by Khun Phaisarn
- Techajaruwong from
-
- ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux/Fonts
- <ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/Linux/Fonts>
-
- For example, there is a font name "phaisarn.psf". You can load the new
- font from Linux console by command
-
- %setfont phaisarn.psf
-
- You should put Thai fonts (psf format) in /usr/lib/kbd/consolefonts/.
- If you want Thai font to be loaded automatically when you boot the
- machine, create the file /etc/rc.d/rc.font (Slackware) as the follow¡
- ing.
-
- #!/bin/sh
- #
- # This selects your default screen font from among the ones in
- # /usr/lib/kbd/consolefonts.
- #
- setfont phaisarn.psf
-
- 2.1.2. Keyboard layout
-
- You can set keyboard behavior as you like by using loadkeys command.
- Usually, you use loadkeys to load the file located in
- /usr/lib/kbd/keytables. You can create the map file and save in this
- directory. This is the sample.
-
- # thai.map
- # This thai.map was modified by Poonlap Veeratanabutr (poon-v@fedu.uec.ac.jp)
- # from us.map. Map Thai Kedmanee keyboard to US keyboard.
- # 28 April 1997
- # Thai/Us toggle key is AltGr(right alt).
- keycode 0 =
- keycode 1 = Escape Escape
- alt keycode 1 = Meta_Escape
- keycode 2 = +one exclam +aring plus
- alt keycode 2 = Meta_one
- alt shift keycode 2 = Meta_exclam
- keycode 3 = +two at +slash ntilde
- control keycode 3 = nul
- control shift keycode 3 = nul
- alt keycode 3 = Meta_two
- alt shift keycode 3 = Meta_at
- keycode 4 = +three numbersign +underscore ograve
- control keycode 4 = Escape
- alt keycode 4 = Meta_three
- alt shift keycode 4 = Meta_numbersign
- keycode 5 = +four dollar +Agrave oacute
- control keycode 5 = Control_backslash
- alt keycode 5 = Meta_four
- alt shift keycode 5 = Meta_dollar
- keycode 6 = +five percent +paragraph ocircumflex
- control keycode 6 = Control_bracketright
- alt keycode 6 = Meta_five
- alt shift keycode 6 = Meta_percent
- keycode 7 = +six asciicircum +Ooblique Ugrave
- control keycode 7 = Control_asciicircum
- alt keycode 7 = Meta_six
- alt shift keycode 7 = Meta_asciicircum
- keycode 8 = +seven ampersand +Odiaeresis ssharp
- control keycode 8 = Control_underscore
- alt keycode 8 = Meta_seven
- keycode 9 = +eight asterisk +currency otilde
- control keycode 9 = Delete
- alt keycode 9 = Meta_eight
- keycode 10 = +nine parenleft +mu Odiaeresis
- alt keycode 10 = Meta_nine
- keycode 11 = +zero parenright +diaeresis division
- alt keycode 11 = Meta_zero
- keycode 12 = +minus underscore +cent oslash
- control keycode 12 = Control_underscore
- control shift keycode 12 = Control_underscore
- alt keycode 12 = Meta_minus
- keycode 13 = +equal plus +ordfeminine ugrave
- alt keycode 13 = Meta_equal
- keycode 14 = Delete Delete Delete Delete
- alt keycode 14 = Meta_Delete
- keycode 15 = Tab Tab Tab Tab
- alt keycode 15 = Meta_Tab
- keycode 16 = +q Q +ae eth
- keycode 17 = +w W +adiaeresis quotedbl
- keycode 18 = +e E +Oacute registered
- keycode 19 = +r R +threequarters plusminus
- keycode 20 = +t T +ETH cedilla
- keycode 21 = +y Y +Ntilde iacute
- keycode 22 = +u U +Otilde ecircumflex
- keycode 23 = +i I +Atilde threesuperior
- keycode 24 = +o O +onesuperior Idiaeresis
- keycode 25 = +p P +Acircumflex hyphen
- keycode 26 = +bracketleft braceleft +masculine degree
- control keycode 26 = Escape
- alt keycode 26 = Meta_bracketleft
- alt shift keycode 26 = Meta_braceleft
- keycode 27 = +bracketright braceright +Aring comma
- control keycode 27 = Control_bracketright
- alt keycode 27 = Meta_bracketright
- alt shift keycode 27 = Meta_braceright
- keycode 28 = Return Return Return Return
- alt keycode 28 = 0x080d
- keycode 29 = Control Control Control Control
- keycode 30 = +a A +questiondown Adiaeresis
- keycode 31 = +s S +Ediaeresis brokenbar
- keycode 32 = +d D +exclamdown macron
- keycode 33 = +f F +acute acircumflex
- keycode 34 = +g G +agrave notsign
- keycode 35 = +h H +eacute ccedilla
- keycode 36 = +j J +egrave ediaeresis
- keycode 37 = +k K +Ograve Eacute
- keycode 38 = +l L +Ecircumflex Egrave
- keycode 39 = +semicolon colon +Ccedilla guillemotleft
- alt keycode 39 = Meta_semicolon
- keycode 40 = +apostrophe quotedbl +section period
- control keycode 40 = Control_g
- alt keycode 40 = Meta_apostrophe
- keycode 41 = +grave asciitilde +minus percent
- control keycode 41 = nul
- alt keycode 41 = Meta_grave
- keycode 42 = Shift Shift Shift Shift
- keycode 43 = +backslash bar +sterling yen
- control keycode 43 = Control_backslash
- alt keycode 43 = Meta_backslash
- alt shift keycode 43 = Meta_bar
- keycode 44 = +z Z +onequarter parenleft
- keycode 45 = +x X +guillemotright parenright
- keycode 46 = +c C +aacute copyright
- keycode 47 = +v V +Iacute Icircumflex
- keycode 48 = +b B +Ocircumflex Uacute
- keycode 49 = +n N +multiply igrave
- keycode 50 = +m M +periodcentered question
- keycode 51 = +comma less +Aacute twosuperior
- alt keycode 51 = Meta_comma
- alt shift keycode 51 = Meta_less
- keycode 52 = +period greater +atilde Igrave
- alt keycode 52 = Meta_period
- alt shift keycode 52 = Meta_greater
- keycode 53 = +slash question +onehalf AE
- control keycode 53 = Delete
- alt keycode 53 = Meta_slash
- keycode 54 = Shift Shift Shift Shift
- keycode 55 = KP_Multiply
- keycode 56 = Alt Alt Alt Alt
- keycode 57 = space space space space
- control keycode 57 = nul
- alt keycode 57 = Meta_space
- keycode 58 = Caps_Lock Caps_Lock Caps_Lock Caps_Lock
- keycode 59 = F1 F11 Console_13
- control keycode 59 = F1
- alt keycode 59 = Console_1
- control alt keycode 59 = Console_1
- keycode 60 = F2 F12 Console_14
- control keycode 60 = F2
- alt keycode 60 = Console_2
- control alt keycode 60 = Console_2
- keycode 61 = F3 F13 Console_15
- control keycode 61 = F3
- alt keycode 61 = Console_3
- control alt keycode 61 = Console_3
- keycode 62 = F4 F14 Console_16
- control keycode 62 = F4
- alt keycode 62 = Console_4
- control alt keycode 62 = Console_4
- keycode 63 = F5 F15 Console_17
- control keycode 63 = F5
- alt keycode 63 = Console_5
- control alt keycode 63 = Console_5
- keycode 64 = F6 F16 Console_18
- control keycode 64 = F6
- alt keycode 64 = Console_6
- control alt keycode 64 = Console_6
- keycode 65 = F7 F17 Console_19
- control keycode 65 = F7
- alt keycode 65 = Console_7
- control alt keycode 65 = Console_7
- keycode 66 = F8 F18 Console_20
- control keycode 66 = F8
- alt keycode 66 = Console_8
- control alt keycode 66 = Console_8
- keycode 67 = F9 F19 Console_21
- control keycode 67 = F9
- alt keycode 67 = Console_9
- control alt keycode 67 = Console_9
- keycode 68 = F10 F20 Console_22
- control keycode 68 = F10
- alt keycode 68 = Console_10
- control alt keycode 68 = Console_10
- keycode 69 = Num_Lock
- keycode 70 = Scroll_Lock Show_Memory Show_Registers
- control keycode 70 = Show_State
- alt keycode 70 = Scroll_Lock
- keycode 71 = KP_7
- alt keycode 71 = Ascii_7
- keycode 72 = KP_8
- alt keycode 72 = Ascii_8
- keycode 73 = KP_9
- alt keycode 73 = Ascii_9
- keycode 74 = KP_Subtract
- keycode 75 = KP_4
- alt keycode 75 = Ascii_4
- keycode 76 = KP_5
- alt keycode 76 = Ascii_5
- keycode 77 = KP_6
- alt keycode 77 = Ascii_6
- keycode 78 = KP_Add
- keycode 79 = KP_1
- alt keycode 79 = Ascii_1
- keycode 80 = KP_2
- alt keycode 80 = Ascii_2
- keycode 81 = KP_3
- alt keycode 81 = Ascii_3
- keycode 82 = KP_0
- alt keycode 82 = Ascii_0
- keycode 83 = KP_Period
- altgr control keycode 83 = Boot
- control alt keycode 83 = Boot
- keycode 84 = Last_Console
- keycode 85 =
- keycode 86 = less greater bar
- alt keycode 86 = Meta_less
- keycode 87 = F11 F11 Console_23
- control keycode 87 = F11
- alt keycode 87 = Console_11
- control alt keycode 87 = Console_11
- keycode 88 = F12 F12 Console_24
- control keycode 88 = F12
- alt keycode 88 = Console_12
- control alt keycode 88 = Console_12
- keycode 89 =
- keycode 90 =
- keycode 91 =
- keycode 92 =
- keycode 93 =
- keycode 94 =
- keycode 95 =
- keycode 96 = KP_Enter
- keycode 97 = Control
- keycode 98 = KP_Divide
- keycode 99 = Control_backslash
- control keycode 99 = Control_backslash
- alt keycode 99 = Control_backslash
- keycode 100 = AltGr_Lock
- keycode 101 = Break
- keycode 102 = Find
- keycode 103 = Up
- keycode 104 = Prior
- shift keycode 104 = Scroll_Backward
- keycode 105 = Left
- alt keycode 105 = Decr_Console
- keycode 106 = Right
- alt keycode 106 = Incr_Console
- keycode 107 = Select
- keycode 108 = Down
- keycode 109 = Next
- shift keycode 109 = Scroll_Forward
- keycode 110 = Insert
- keycode 111 = Remove
- altgr control keycode 111 = Boot
- control alt keycode 111 = Boot
- keycode 112 =
- keycode 113 =
- keycode 114 =
- keycode 115 =
- keycode 116 =
- keycode 117 =
- keycode 118 =
- keycode 119 =
- keycode 120 =
- keycode 121 =
- keycode 122 =
- keycode 123 =
- keycode 124 =
- keycode 125 =
- keycode 126 =
- keycode 127 =
- string F1 = "\033[[A"
- string F2 = "\033[[B"
- string F3 = "\033[[C"
- string F4 = "\033[[D"
- string F5 = "\033[[E"
- string F6 = "\033[17~"
- string F7 = "\033[18~"
- string F8 = "\033[19~"
- string F9 = "\033[20~"
- string F10 = "\033[21~"
- string F11 = "\033[23~"
- string F12 = "\033[24~"
- string F13 = "\033[25~"
- string F14 = "\033[26~"
- string F15 = "\033[28~"
- string F16 = "\033[29~"
- string F17 = "\033[31~"
- string F18 = "\033[32~"
- string F19 = "\033[33~"
- string F20 = "\033[34~"
- string Find = "\033[1~"
- string Insert = "\033[2~"
- string Remove = "\033[3~"
- string Select = "\033[4~"
- string Prior = "\033[5~"
- string Next = "\033[6~"
- string F21 = ""
- string F22 = ""
- string F23 = ""
- string F24 = ""
- string F25 = ""
- string F26 = ""
-
- Suppose you save this file as thai.map. To load this file
-
- %loadkeys thai.map
-
- To switch to Thai input press the right Alt key. If you want to switch
- to English press the right Alt key again. To set Thai keymap as
- default (Slackware), after you put thai.map in /usr/lib/kbd/keytables
- create the file /etc/rc.d/rc.keymap like the sample.
-
- #!/bin/sh
- #
- # Loadkeys will look for thai.map in /usr/lib/kbd/keytables
- #
- loadkeys thai
-
- The thai.map will be automatically loaded when you boot the machine.
-
- For RedHat, change the content of the file /etc/sysconfig/keyboard.
-
- 2.2. X Window system
-
- 2.2.1. Thai fonts
-
- To display Thai characters in X Window system, you must have Thai
- fonts for X Window system. You can obtain Thai fonts in bdf format or
- pcf format on internet.
-
- ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/UNIX/Fonts
- <ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/UNIX/Fonts>
- http://thaigate.rd.nacsis.ac.jp/files/thaifonts.html
- <http://thaigate.rd.nacsis.ac.jp/files/thaifonts.html>
- http://www.nectec.ac.th/pub/software/i18n/thai
- <http://www.nectec.ac.th/pub/software/i18n/thai>
-
- These fonts usually come in tar or gz format. You must extract it by
- using command tar or gunzip. You will get a lot of
-
- 2.2.1.1. Installing Thai fonts
-
- You must log in as root. Let's put Thai fonts in
- /usr/X11/lib/X11/fonts/misc/ change directory to
- /usr/X11/lib/X11/fonts/misc/ and run command
-
- #mkfontdir
-
- This command will update font database file. If you run this command
- in X Windows system, you may need to restart X window to take effect.
-
- 2.2.2. Thai keyboard layout
-
- 2.2.2.1. Thai keyboard layout with xmodmap
-
- You can use the utility xmodmap to map Thai keyboard. Normally
- xmodmap is used to load the the file. There is the file .Xmodmap in
- /use/X11/lib/X11/xinit/. This file will be load if you don't have
- ~.xinitrc/ and .Xmodmap(in Slackware). The file
- /usr/X11/lib/X11/xinit/.Xmodmap doesn't map all keys. It only solves
- the Backspace/Delete key's problem. The following is the sample
- .Xmodmap for Thai Kedmanee keyboard layout.
-
- !
- ! Linux/XFree86 Thai Kedmanee layout (based on US keyboard)
- ! Generated on Mon May 26 22:59:56 1997
- ! by Poonlap Veeratanabutr (poon-v@fedu.uec.ac.jp)
- ! Use ScrollLock to switch to Thai keyboard.
- ! This file will work with XFree86 only.
- !
-
- keycode 0x09 = Escape
- keycode 0x43 = F1
- keycode 0x44 = F2
- keycode 0x45 = F3
- keycode 0x46 = F4
- keycode 0x47 = F5
- keycode 0x48 = F6
- keycode 0x49 = F7
- keycode 0x4A = F8
- keycode 0x4B = F9
- keycode 0x4C = F10
- keycode 0x5F = F11
- keycode 0x60 = F12
- keycode 0x6F = Print
- keycode 0x4E = Mode_switch XF86ModeLock
- keycode 0x6E = Pause
- keycode 0x31 = grave asciitilde minus percent
- keycode 0x0A = 1 exclam aring plus
- keycode 0x0B = 2 at slash ntilde
- keycode 0x0C = 3 numbersign underscore ograve
- keycode 0x0D = 4 dollar Agrave oacute
- keycode 0x0E = 5 percent paragraph ocircumflex
- keycode 0x0F = 6 asciicircum Ooblique Ugrave
- keycode 0x10 = 7 ampersand Odiaeresis ssharp
- keycode 0x11 = 8 asterisk currency otilde
- keycode 0x12 = 9 parenleft mu odiaeresis
- keycode 0x13 = 0 parenright diaeresis division
- keycode 0x14 = minus underscore cent oslash
- keycode 0x15 = equal plus ordfeminine ugrave
- keycode 0x33 = backslash bar sterling yen
- keycode 0x16 = BackSpace
- keycode 0x6A = Insert
- keycode 0x61 = Home
- keycode 0x63 = Prior
- keycode 0x4D = Num_Lock
- keycode 0x70 = KP_Divide
- keycode 0x3F = KP_Multiply
- keycode 0x52 = KP_Subtract
- keycode 0x17 = Tab
- keycode 0x18 = q Q ae eth
- keycode 0x19 = w W adiaeresis quotedbl
- keycode 0x1A = e E Oacute registered
- keycode 0x1B = r R threequarters plusminus
- keycode 0x1C = t T ETH cedilla
- keycode 0x1D = y Y Ntilde iacute
- keycode 0x1E = u U Otilde ecircumflex
- keycode 0x1F = i I Atilde threesuperior
- keycode 0x20 = o O onesuperior Idiaeresis
- keycode 0x21 = p P Acircumflex hyphen
- keycode 0x22 = bracketleft braceleft masculine degree
- keycode 0x23 = bracketright braceright Aring comma
- keycode 0x24 = Return
- keycode 0x6B = Delete
- keycode 0x67 = End
- keycode 0x69 = Next
- keycode 0x4F = KP_7
- keycode 0x50 = KP_8
- keycode 0x51 = KP_9
- keycode 0x56 = KP_Add
- keycode 0x42 = Caps_Lock
- keycode 0x26 = a A questiondown Adiaeresis
- keycode 0x27 = s S Ediaeresis brokenbar
- keycode 0x28 = d D exclamdown macron
- keycode 0x29 = f F acute acircumflex
- keycode 0x2A = g G agrave notsign
- keycode 0x2B = h H eacute ccedilla
- keycode 0x2C = j J egrave ediaeresis
- keycode 0x2D = k K Ograve Eacute
- keycode 0x2E = l L Ecircumflex Egrave
- keycode 0x2F = semicolon colon Ccedilla guillemotleft
- keycode 0x30 = apostrophe quotedbl section period
- keycode 0x53 = KP_4
- keycode 0x54 = KP_5
- keycode 0x55 = KP_6
- keycode 0x32 = Shift_L
- keycode 0x34 = z Z onequarter parenleft
- keycode 0x35 = x X guillemotright parenright
- keycode 0x36 = c C aacute copyright
- keycode 0x37 = v V Iacute Icircumflex
- keycode 0x38 = b B Ocircumflex Uacute
- keycode 0x39 = n N multiply igrave
- keycode 0x3A = m M periodcentered question
- keycode 0x3B = comma less Aacute twosuperior
- keycode 0x3C = period greater atilde Igrave
- keycode 0x3D = slash question onehalf AE
- keycode 0x3E = Shift_R
- keycode 0x62 = Up
- keycode 0x57 = KP_1
- keycode 0x58 = KP_2
- keycode 0x59 = KP_3
- keycode 0x6C = KP_Enter
- keycode 0x25 = Control_L
- keycode 0x40 = Alt_L Meta_L
- keycode 0x41 = space
- keycode 0x71 = Alt_R Meta_R
- keycode 0x6D = Control_R
- keycode 0x64 = Left
- keycode 0x68 = Down
- keycode 0x66 = Right
- keycode 0x5A = KP_0
- keycode 0x5B = KP_Decimal
-
- clear Shift
- clear Lock
- clear Control
- clear Mod1
- clear Mod2
- clear Mod3
- clear Mod4
- clear Mod5
-
- add Shift = Shift_L Shift_R
- add Lock = Caps_Lock
- add Control = Control_L Control_R
- add Mod1 = Alt_L Alt_R
- add Mod2 = Mode_switch
-
- Put this sample file in your home directory. If you have .xinitrc or
- .xsession in your home directory, add the following line in those
- files.
-
- xmodmap ~/.Xmodmap
-
- Thai/US toggle key is assigned to keycode 0x4E (78), Scroll Lock key
- with the statement
-
- keycode 0x4E = Mode_switch XF86ModeLock
-
- XF86ModeLock is the special keysym for XFree86 X server. If you don't
- add this keysym, you have to hold the scroll lock key while you are
- typing Thai characters. Note that if you use accelerated X, some key¡
- codes are different. You may have to map keyboard by yourself. I rec¡
- ommend xkeycaps utility to config you keyboard behavior. You can get
- xkeycaps lastest version from
- http://home.netscape.com/people/jwz/xkeycaps
- <http://home.netscape.com/people/jwz/xkeycaps>. I submited the above
- xmodmap file to Mr.Jamie Zawinski who created xkeycaps so you can find
- above map file from xkeycaps too.
-
- Note: If you are using XFree86 version 3.1.2D or later, you need to
- add the line XkbDisable in keyboard section in the XF86Config file. If
- necessary you may config the keyboard section like the example.
-
- Section "Keyboard"
- Protocol "Standard"
- AutoRepeat 500 5
- LeftAlt Meta
- RightAlt ModeShift
- ScrollLock ModeLock
- RightCtl Compose
- XkbDisable
- EndSection
-
- 2.2.2.2. XFree86 3.1.2D or later and Thai keyboard layout.
-
- Beginning with XFree86 3.1.2D, you can use the new X11R6.1 XKEYBOARD
- extension to manage the keyboard layout. This is very helpful. You can
- set Thai keyboard layout in 2 ways. First with traditional xmodmap,
- second with XFree86 configuration.
-
- During X server configuration with xf86config you will be asked about
- XKB, if you want to to set Thai keyboard layout for your system, say
- yes. There are a list of preconfigured keymaps. Choose Standard
- 101-key, Thai encoding.
-
- XF86Setup is the graphical configuration utility for XFree86.
- XF86Setup is normally used to either perform the initial setup of
- the XFree86 X servers or to make adjustments to the existing
- configuration. It is easier than traditional xf86config. You can see
- the keyboard layout with this tool.
-
- Ther are many choices of switch key to select. The default is
- Alt+RightShift switch to Thai and Alt+LeftShift switch to US. You can
- input Thai characters but Thai fonts are not provided.
-
- I found that preconfigured keymaps that came with XFree86-3.2 (RedHat
- 4.2) is not correct. You may not be able to type THO THUNG which
- located at "5 key". To fix this problem, you should add the line
-
- key <AE05> { [], [ paragraph, ocircumflex ] };
-
- in the file /usr/X11R6/lib/X11/xkb/symbols/th as the example.
-
- key <AE03> { [], [ minus, ograve ] };
- key <AE04> { [], [ Agrave, oacute ] };
- key <AE05> { [], [ paragraph, ocircumflex ] };
- key <AE06> { [], [ Ooblique, Ugrave ] };
- key <AE07> { [], [ Odiaeresis, ssharp ] };
-
- You can not type SORUSI also. Please change the line from
-
- key <AC08> { [], [ Ograve, eacute ] };
-
- to
-
- key <AC08> { [], [ Ograve, Eacute ] };
-
- Note that eacute is MAITHO and Eacute is SORUSI.
-
- There are also XKB extension utilities such as setxkbmap, xkbcomp,
- etc. Please see man page for more information.
-
- The following is the example. It is the part of XF86Config file in
- keyboard section. This configuration uses the default toggle key.
-
- Section "Keyboard"
- Protocol "Standard"
- AutoRepeat 500 5
- LeftAlt Meta
- RightAlt Meta
- ScrollLock Compose
- RightCtl Control
- # XkbDisable
- XkbKeycodes "xfree86"
- XkbTypes "default"
- XkbCompat "default"
- XkbSymbols "us(pc101)"
- XkbGeometry "pc"
- XkbRules "xfree86"
- XkbModel "pc101"
- XkbLayout "th"
- EndSection
-
- If you use XKB extension, Thai keyboard mapping with xmodmap may not
- work.
-
- 3. Applications with Thai characters
-
- This is the tricky part. Most applications support iso_8859_1
- characters or 8-bit characters. For example, emacs can display
- iso_8859_1 character. If we set emacs to display iso_8859_1 and use
- Thai font, you can edit Thai document with emacs.
-
- You should define the environment LC_CTYPE to iso_8859_1 in
- /etc/profile (for bash users) and /etc/csh.cshrc (for tcsh users).
- Similarly you should (for the sake of principle) put something like
- this in your
-
- *basicLocale: C
- *timeFormat: C
- *numeric: C
- *displayLang: iso_8859_1
- *inputLang: iso_8859_1
-
- If you use libc-4.x.xx you should set LC_CTYPE to ISO-8859-1 instead
- of iso_8859_1.
-
- These are some of applications which can use with Thai characters and
- how to config them. To make X window application displays Thai font,
- you should run the application with -fn option. For example,
-
- #xterm -fn thai8x16
-
- If you don't want to fill -fn option every time you run application.
- You should set Thai font in your ~/.Xdefaults or ~/.Xresources like
- this
-
- XTerm*font: NameOfThaifont
-
- 3.1. Non-network applications
-
- 3.1.1. xterm
-
- There are several programs running under xterm such as shell, pine,
- vi, etc. Don't forget to use Thai font with xterm as I mention above.
-
- bash :
- New versions of bash (v1.14.1+) only need to have LC_CTYPE set
- to iso_8859_1, but if you have problems put the following in
- your /etc/inputrc or ~/.inputrc file:
-
- set meta-flag on
- set convert-meta off
- set output-meta on
-
- I actually don't set LC_CTYPE environment variable to iso_8859_1
- because this environment variable will effect other applications
- too. With bash shell, you can specify which environment variable to
- be passed to the application. I can make tterm (Thai Terminal) with
- this syntax.
-
- LC_CTYPE=iso_8859_1 xterm -fn thai8x16
-
- It is helpful if you alias the commands like this in
-
- alias tterm='LC_CTYPE=iso_8859_1 xterm -fn thai8x16'
- alias temacs='LC_CTYPE=iso_8859_1 emacs -fn -etl-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1'
- alias ls='ls -F -N --color'
-
- To run xterm with bash shell that accepts Thai characters, you just
- run tterm. You can type Thai characters in command line. That
- means you can name filenames in Thai.
-
- tcsh :
- Put the following in your /etc/csh.cshrc or .tcshrc file:
-
- setenv LC_CTYPE iso_8859_1
-
- Note: If this doesn't work, your copy of tcsh was probably not com¡
- piled with NLS support or possibly it's version 6.03 or lower.
-
- ls :
- Issue the command as
-
- ls -N
-
- or possibly
-
- ls --8bit
-
- You may set alias in ~/.bashrc or ~/.cshrc, so you can type ls
- without option. If you don't use ls with -N option, you may see
- Thai filename as ?????.
-
- less :
- Set the following environment variable:
-
- LESSCHARSET=latin1
-
- 3.1.2. emacs
-
- In version 19.26 or later of GNU emacs for X11 you can simply set the
- environment variable LC_CTYPE to iso_8859_1. If you use an older
- version or use emacs under plain Linux put the following in your
- ~/.emacs or the the system-wide initialization file (probably
- /usr/lib/emacs/site-lisp/default.el):
-
- (standard-display-european t)
-
- (set-input-mode (car (current-input-mode))
- (nth 1 (current-input-mode))
- 0)
-
- If you run emacs already, press Esc-x and type standard-display-
- european in minibuffer, this command will tell emacs to display 8-bit
- character.
-
- If you use bash shell you can run emacs in this way,
-
- LC_CTYPE=iso_8859_1 emacs -fn -etl-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1
-
- This will set LC_CTYPE=iso_8859_1 for emacs only.
-
- Because some Thai characters have 0 width, cursor's position may be
- not in the right place. you should use the fonts from mule. You can
- get these fonts from
-
- ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/UNIX/Fonts/Mule/etl_fonts.tar
- <ftp://ftp.fedu.uec.ac.jp/pub/thai/UEC/ZzzThai/Software/UNIX/Fonts/Mule/etl_fonts.tar>
-
- Therefore I use the font -etl-fixed-medium-r-
- normal--16-160-72-72-m-80-tis620.2529-1 in an example.
-
- 3.1.3. vi
-
- Vi should be run on xterm that uses Thai font.
-
- 3.1.4. xedit
-
- Run xedit with -fn option like xterm. This application can display
- Thai characters in the right position.
-
- 3.2. Network applications
-
- 3.2.1. E-mail
-
- You can not send Thai E-mail with mail command. Mail command transfers
- mail in 7 bit. You should use mail application that supports MIME such
- as pine or elm.
-
- elm:
- Put the following definitions in your ~/.elm/elmrc file:
-
- charset = iso-8859-1
- displaycharset = iso-8859-1
- textencoding = 8bit
-
- This may not work on some versions of elm.
-
- pine :
- Put the following definition in your ~/.pinerc file:
-
- # Reflects capabilities of the display you have. Default: US-ASCII.
- # Typical alternatives include ISO-8859-x, (x is a number between 1 and 9).
- character-set=ISO-8859-1
-
- This can also be set via the Setup option in pine. You can find it
- under Config.
-
- 3.2.2. tin
-
- Put the following definitions in your ~/.tin/headers file:
-
- Mime-Version: 1.0
- Content-Type: text/plain; charset=iso-8859-1
- Content-Transfer-Encoding: 8bit
-
- Now you can post messages with the proper Danish characters in the
- message body.
-
- 3.2.3. lynx
-
- Put the following definition in your ~/.lynxrc file:
-
- character_set=ISO Latin 1
-
- This can also be set via the Options menu in lynx. Type `o' and set
- the relevant option.
-
- 3.2.4. Netscape
-
- If you have Thai fonts in your system. You just select Thai fonts from
- Options | General Preferences | Fonts. Thai fonts will appear in
- ISO-8859-1 or in User defined. See
- http://www.fedu.uec.ac.jp/ZzzThai/unix
- <http://www.fedu.uec.ac.jp/ZzzThai/unix> for setting Thai language on
- Netscape.
-
- 3.3. Thai Applications on X window.
-
- As I know. There are few Thai applications on X window.
-
- Likit is the Thai editor and mail sender (by uuencode) that does not
- need Thai font. Likit was created by Khun Vuthichai Ampornaramveth.
- You can find this application from thaigate site.
-
- If you are using Tex or Latex, you may want to use Thai Tex. This is
- the work of Dr. Manop Wongsaisuwan and his friends at Tokyo Institute
- of technology. You can also find Thai tex on
- http://thaigate.nacsis.ac.jp/files/ttex.html
- <http://thaigate.nacsis.ac.jp/files/ttex.html>.
-
- Txterm, this is Thai xterm version. I don't know much about this.
-
- Xzthai, this is the Tcl/Tk application for mapping Thai keyboard on US
- keyboard with graphical user interface. Also provides simple editor
- and keyboard layout figure. You need to have Thai font. It actually
- uses xmodmap program in background to map US keyboard and Thai
- keyboard. This program was created by me. See
- http://www.fedu.uec.ac.jp/ZzzThai/xio/xzthai.html
- <http://www.fedu.uec.ac.jp/ZzzThai/xio/xzthai.html>
-
- 3.4. Other Tips.
-
- Now you can configure the applications to be more Thai environment.
- Because Xt based applications allows user to configure the
- applications by resources. We can make the menu or label to be Thai
- language.
-
- For example, if you want xman to display Thai labels. You may add
- these lines in your .Xdefaults
-
- !! Xman section
- Xman*Font: thai8x16
- Xman*helpButton.Label: ¬Φ╟┬
- Xman*quitButton.Label: ══í
- Xman*manpageButton.Label: ñ┘Φ┴╫═í╥├π¬Θ
-
- 4. References and FTP sites
-
- 4.1. Other documents of relevance
-
- The HOWTOs ought to be available from all mirrors of sunsite.unc.edu.
-
- The Linux Danish/International HOWTO by Niels Kristian Bech Jensen
-
- The Linux Cyrillic HOWTO by Alexander L. Belikoff
-
- The Keystroke mini-HOWTO by Zenon Fortuna.
-
- The Locales mini-HOWTO by Peeter Joot. (This one is mainly for
- developers.)
-
- The ISO-8859-1 FAQ and Programming for Internationalization FAQ (plus
- much more) by Michael Gschwind is available from his homepage
- <http://www.vlsivie.tuwien.ac.at/mike/i18n.html>.
-
- NACSIS R& D Thai Project Page <http://thaigate.rd.nacsis.ac.jp> You
- can get information about Thai computing here.
-
- ZzzThai Project <http://www.fedu.uec.ac.jp/ZzzThai/>, by The group of
- students in The University of Electro-Communications, Tokyo. Describe
- how to use Thai with many computer platforms.
-
- Vuthichai's Page <http://www.ctrl.titech.ac.jp:80/~vuthi/>, contains
- information about Thai computing by Khun Vuthichai Ampornaramveth.
-
- 4.2. FTP and Web sites
-
- NACSIS R & D Thai Project : http://thaigate.rd.nacsis.ac.jp
- <http://thaigate.rd.nacsis.ac.jp> You can find Thai tex on this site.
-
- ZzzThai Project : http://www.fedu.uec.ac.jp/ZzzThai
- <http://www.fedu.uec.ac.jp/ZzzThai>
-
- Vuthichai's Homepage : http://www.ctrl.titech.ac.jp:80/~vuthi/
- <http://www.ctrl.titech.ac.jp:80/~vuthi/>
-
- SunSite <ftp://sunsite.unc.edu/pub/linux/> and mirrors. doc/howto has
- the above mentioned HOWTOs. utils/nls and subdirectories contain files
- related to National Language Support. Developers should take a look
- at locale-tutorial-0.8.txt.gz, locale-pack-0.8.tar.gz and cat-
- pack.tar.gz.
-
- The GNU archives <ftp://prep.ai.mit.edu/pub/gnu/> has the recode
- package for character table conversion, the ABOUT-NLS file and the
- gettext package for locale support of some GNU applications and (of
- course) the latest versions of GNU emacs.
-
- 5. Acknowledgments and Copyright
-
- Some parts of this HOWTO comes from The Linux Danish/International
- HOWTO by Thomas Petersen, petersen@post1.tele.dk (the original author)
- and Niels Kristian Bech Jensen, nkbj@image.dk.
-
- Thank you to Phaisarn Techajaruwong for building Thai fonts and
- valuable discussion. Thank you to Thai students at The University of
- Electro-Communications and Khun Vuthichai Ampornaramveth for every
- help.
-
- This HOWTO is copyrighted by Poonlap Veeratanabutr, poon-
- v@fedu.uec.ac.jp. It is distributed as other Linux HOWTOs under the
- terms described below.
-
- Linux HOWTO documents may be reproduced and distributed in whole or in
- part, in any medium physical or electronic, as long as this copyright
- notice is retained on all copies. Commercial redistribution is allowed
- and encouraged; however, the authors would like to be notified of any
- such distributions.
-
- All translations, derivative works, or aggregate works incorporating
- any Linux HOWTO documents must be covered under this copyright notice.
- That is, you may not produce a derivative work from a HOWTO and impose
- additional restrictions on its distribution. Exceptions to these rules
- may be granted under certain conditions; please contact the Linux
- HOWTO coordinator at the address given below.
-
- If you have questions, please contact Greg Hankins, the Linux HOWTO
- coordinator, at gregh@sunsite.unc.edu <mailto:gregh@sunsite.unc.edu>
- via email.
-
-